package com.rio.helper.json;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.LinkedList;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.os.Debug;
import android.text.TextUtils;
import android.util.Log;

import com.google.gson.Gson;
import com.rio.core.U;

public class JSONHelper {
	
	
	
	/**
	 * 将对象转成JSON字符串
	 * @param obj
	 * @return
	 */
	public static String parseObj2Json(Object obj){
		
		if(null == obj)return null;
		
        Gson gson=new Gson(); 
        String objstr=gson.toJson(obj);

        return objstr;
	}
	/**
	 * 将JSON字符串转成对象
	 * @param <T>
	 * @param jsonData
	 * @param c
	 * @return
	 */
	public static <T> Object parseJson2Obj(String jsonData, Class<T> c) {
		
		if(TextUtils.isEmpty(jsonData))return null;
		
		Gson gson = new Gson();
		Object obj = gson.fromJson(jsonData, c);
		
		return obj;
	}
	
	
	/**
	 * 将JSON字符串转成对象List
	 * @param <T>
	 * @param jsonData
	 * @param c
	 * @return
	 * @throws JSONException 
	 */
	public static <T> ArrayList<T> parseJson2List(String jsonData,Class<T> c) throws JSONException {
		
		if(TextUtils.isEmpty(jsonData))return null;
		
		Gson gson = new Gson();
		ArrayList<T> list = new ArrayList<T>();
		JSONArray jsonArray = new JSONArray(jsonData);
		JSONObject objItem = null;
		T objT = null;

		for (int i = 0; i < jsonArray.length(); i++) {
			objItem = (JSONObject) jsonArray.get(i);
			if(U.notNull(objItem)){
				objT = gson.fromJson(objItem.toString(), c);
				list.add(objT);
			}
	    }
		
		return list;
	}
	
		
}
